﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
using Entity = Savico.Library.Entity;
using Business = Savico.Library.Business;
using Commom = Savico.Library.Commom.Algorithm;

public partial class templates_admin_usercontrols_add_news : System.Web.UI.UserControl
{
    Commom.RandomString strRandom = new Savico.Library.Commom.Algorithm.RandomString();
    Entity.TinTuc entityNews = new Savico.Library.Entity.TinTuc();
    Entity.DanhMuc entityCategory = new Savico.Library.Entity.DanhMuc();
    Business.TinTuc businessNews = new Savico.Library.Business.TinTuc();
    Business.DanhMuc businessCategory = new Savico.Library.Business.DanhMuc();
    Business.TaoMa businessCode = new Savico.Library.Business.TaoMa();
    Entity.TaoMa entityCode = new Savico.Library.Entity.TaoMa();
    DataTable dtNews = new DataTable();
    string kt = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            entityCategory.NgonNgu = "vi";
            LoadChuyenMucVN(0);
            entityCategory.NgonNgu = "en";
            LoadChuyenMucEN(0);
            string action = Request.QueryString["action"].ToString();
            if (action == "add")
            {
                imgTinTuc.Visible = false;
                lbTitle.Text = "Thêm bài viết mới";
            }
            else
            {
                imgTinTuc.Visible = true;
                lbTitle.Text = "Sửa thông tin bài viết";
                int info = Convert.ToInt32(Request.QueryString["Id"].ToString());
                entityNews.IdTinTuc = info;
                dtNews = businessNews.SelectPrimaryKey(entityNews);
                if (dtNews.Rows.Count == 1)
                {
                    kt = dtNews.Rows[0]["NgonNgu"].ToString();
                    if (kt == "en")
                    {
                        txtTitle.Text = dtNews.Rows[0]["TieuDe"].ToString();
                        fckContent.Value = dtNews.Rows[0]["NoiDung"].ToString();
                        ddlCategory.SelectedValue = dtNews.Rows[0]["ChuyenMuc"].ToString();
                        txtSummary.Text = dtNews.Rows[0]["TomTat"].ToString();
                        txtAuthors.Text = dtNews.Rows[0]["NguonTin"].ToString();
                        if (Convert.ToBoolean(dtNews.Rows[0]["TrangThai"].ToString()) == true)
                        {
                            ddlStatus.SelectedValue = "1";
                        }
                        else
                        {
                            ddlStatus.SelectedValue = "0";
                        }
                    }
                    if (kt == "vi")
                    {
                        txtTieuDe.Text = dtNews.Rows[0]["TieuDe"].ToString();
                        fckNoiDungVn.Value = dtNews.Rows[0]["NoiDung"].ToString();
                        ddlChuyenMuc.SelectedValue = dtNews.Rows[0]["ChuyenMuc"].ToString();
                        txtTomTat.Text = dtNews.Rows[0]["TomTat"].ToString();
                        txtTacGia.Text = dtNews.Rows[0]["NguonTin"].ToString();
                        if (Convert.ToBoolean(dtNews.Rows[0]["TrangThai"].ToString()) == true)
                        {
                            ddlTrangThai.SelectedValue = "1";
                        }
                        else
                        {
                            ddlTrangThai.SelectedValue = "0";
                        }

                    }
                    imgTinTuc.ImageUrl = "~/uploads/image-news/" + dtNews.Rows[0]["HinhAnh"];
                    lbTenHinh.Text = dtNews.Rows[0]["HinhAnh"].ToString();
                    dpkNgayVietVn.Text = dtNews.Rows[0]["NgayDang"].ToString();
                }
                if (dtNews.Rows.Count == 2)
                {
                    txtTitle.Text = dtNews.Rows[0]["TieuDe"].ToString();
                    fckContent.Value = dtNews.Rows[0]["NoiDung"].ToString();
                    ddlCategory.SelectedValue = dtNews.Rows[0]["ChuyenMuc"].ToString();
                    txtSummary.Text = dtNews.Rows[0]["TomTat"].ToString();
                    txtAuthors.Text = dtNews.Rows[0]["NguonTin"].ToString();
                    if (Convert.ToBoolean(dtNews.Rows[0]["TrangThai"].ToString()) == true)
                    {
                        ddlStatus.SelectedValue = "1";
                    }
                    else
                    {
                        ddlStatus.SelectedValue = "0";
                    }
                    txtTieuDe.Text = dtNews.Rows[0]["TieuDe"].ToString();
                    fckNoiDungVn.Value = dtNews.Rows[0]["NoiDung"].ToString();
                    ddlChuyenMuc.SelectedValue = dtNews.Rows[0]["ChuyenMuc"].ToString();
                    txtTomTat.Text = dtNews.Rows[0]["TomTat"].ToString();
                    txtTacGia.Text = dtNews.Rows[0]["NguonTin"].ToString();
                    if (Convert.ToBoolean(dtNews.Rows[0]["TrangThai"].ToString()) == true)
                    {
                        ddlTrangThai.SelectedValue = "1";
                    }
                    else
                    {
                        ddlTrangThai.SelectedValue = "0";
                    }
                    imgTinTuc.ImageUrl = "~/uploads/image-news/" + dtNews.Rows[0]["HinhAnh"];
                    lbTenHinh.Text = dtNews.Rows[0]["HinhAnh"].ToString();
                    dpkNgayVietVn.Text = dtNews.Rows[0]["NgayDang"].ToString();
                }
            }
        }
    }
    #region Load chuyên mục tin tức
    private void LoadChuyenMucVN(int IdDanhMuc)
    {
        entityCategory.IdDanhMuc = IdDanhMuc;
        DataTable dt = businessCategory.SelectTheoCap(entityCategory);
        if (dt.Rows.Count > 0)
        {
            foreach (DataRow dr in dt.Rows)
            {
                int id = (int)dr["IdDanhMuc"];
                string name = dr["TenDanhMuc"].ToString();
                int level = (int)dr["Cap"];
                string sub = "";
                for (int i = 1; i <= level; i++)
                {
                    sub += "---";
                }
                name = sub + name;
                ListItem item = new ListItem(name, id.ToString());
                ddlChuyenMuc.Items.Add(item);
                LoadChuyenMucVN(id);
            }
        }
    }
    private void LoadChuyenMucEN(int IdDanhMuc)
    {
        entityCategory.IdDanhMuc = IdDanhMuc;
        DataTable dt = businessCategory.SelectTheoCap(entityCategory);
        if (dt.Rows.Count > 0)
        {
            foreach (DataRow dr in dt.Rows)
            {
                int id = (int)dr["IdDanhMuc"];
                string name = dr["TenDanhMuc"].ToString();
                int level = (int)dr["Cap"];
                string sub = "";
                for (int i = 1; i <= level; i++)
                {
                    sub += "---";
                }
                name = sub + name;
                ListItem item = new ListItem(name, id.ToString());
                ddlCategory.Items.Add(item);
                LoadChuyenMucEN(id);
            }
        }
    }
    #endregion
    protected void btnPreview_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/admin/ListNews.aspx");
    }
    private bool checkVN(string save)
    {
        bool kiemtra = true;
        if (save != "edit")
        {
            if (fuHinhAnh.FileName == "")
            { Alert.Show("Bạn chưa chọn hình ảnh cho bài viết !!!"); kiemtra = false; }
            else if (txtTieuDe.Text == "")
            { Alert.Show("Bạn chưa điền tiêu đề cho bài viết này !!!"); kiemtra = false; }
            else if (dpkNgayVietVn.Text == "")
            { Alert.Show("Bạn chưa ngày đăng cho bài viết này !!!"); kiemtra = false; }
            else if (txtTomTat.Text == "")
            { Alert.Show("Bạn chưa điền tóm tắt cho bài viết này !!!"); kiemtra = false; }
            else if (txtTacGia.Text == "")
            { Alert.Show("Bạn chưa điền tác giả, nguồn tin cho bài viết này !!!"); kiemtra = false; }
            else if (fckNoiDungVn.Value == "")
            { Alert.Show("Bạn chưa nhập nội dung cho bài viết này !!!"); kiemtra = false; }
            else if (ddlChuyenMuc.SelectedValue == "0")
            { Alert.Show("Bạn chưa chọn chuyên mục cho bài viết !!!"); kiemtra = false; }
            else if (ddlTrangThai.SelectedValue == "2")
            { Alert.Show("Bạn chưa chọn trạng thái cho bài viết !!!"); kiemtra = false; }
        }
        return kiemtra;
    }
    private bool checkEN(string save)
    {
        bool kiemtra = true;
        if (save != "edit")
        {
            if (fuHinhAnh.FileName == "")
            { Alert.Show("Bạn chưa chọn hình ảnh cho bài viết !!!"); kiemtra = false; }
            else if (txtTitle.Text == "")
            { Alert.Show("Bạn chưa điền tiêu đề cho bài viết này !!!"); kiemtra = false; }
            else if (dpkNgayVietVn.Text == "")
            { Alert.Show("Bạn chưa ngày đăng cho bài viết này !!!"); kiemtra = false; }
            else if (txtSummary.Text == "")
            { Alert.Show("Bạn chưa điền tóm tắt cho bài viết này !!!"); kiemtra = false; }
            else if (txtAuthors.Text == "")
            { Alert.Show("Bạn chưa điền tác giả, nguồn tin cho bài viết này !!!"); kiemtra = false; }
            else if (fckContent.Value == "")
            { Alert.Show("Bạn chưa nhập nội dung cho bài viết này !!!"); kiemtra = false; }
            else if (ddlCategory.SelectedValue == "0")
            { Alert.Show("Bạn chưa chọn chuyên mục cho bài viết !!!"); kiemtra = false; }
            else if (ddlStatus.SelectedValue == "2")
            { Alert.Show("Bạn chưa chọn trạng thái cho bài viết !!!"); kiemtra = false; }
        }
        return kiemtra;
    }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        string action = Request.QueryString["action"];
        string stringRandom = strRandom.GenerateRandomString();
        try
        {
            bool save1 = false, save2 = false;
            entityNews.NguoiDang = "admin";
            if (action == "add")
            {
                entityCode.LoaiMa = "IdTinTuc";
                entityNews.IdTinTuc = businessCode.TaoMaMoi(entityCode);
                businessCode.Update_Ma(entityCode);
                entityNews.HinhAnh = stringRandom + fuHinhAnh.FileName;
                entityNews.NgayDang = Convert.ToDateTime(dpkNgayVietVn.Text);
                entityNews.LuotXem = 0;
                if (ddlCategory.SelectedValue != "0" && ddlChuyenMuc.SelectedValue == "0")
                {
                    entityNews.NguonTin = txtAuthors.Text;
                    entityNews.TomTat = txtSummary.Text;
                    entityNews.TieuDe = txtTitle.Text;
                    entityNews.NoiDung = fckContent.Value;
                    entityNews.NgonNgu = "en";
                    entityNews.ChuyenMuc = Convert.ToInt32(ddlCategory.SelectedValue);
                    entityNews.TrangThai = Convert.ToBoolean(Convert.ToInt32(ddlStatus.SelectedValue));
                    if (checkEN(action))
                    {
                        save1 = businessNews.Insert(entityNews);
                        if (save1)
                        {
                            Alert.Show("Add news success !!!");
                            fuHinhAnh.SaveAs(Server.MapPath("~/uploads/image-news/" + entityNews.HinhAnh));
                        }
                        else { Alert.Show("Add news fail !!!"); }
                    }
                }
                if (ddlCategory.SelectedValue == "0" && ddlChuyenMuc.SelectedValue != "0")
                {
                    entityNews.NguonTin = txtTacGia.Text;
                    entityNews.TomTat = txtTomTat.Text;
                    entityNews.TieuDe = txtTieuDe.Text;
                    entityNews.NoiDung = fckNoiDungVn.Value;
                    entityNews.NgonNgu = "vi";
                    entityNews.ChuyenMuc = Convert.ToInt32(ddlChuyenMuc.SelectedValue);
                    entityNews.TrangThai = Convert.ToBoolean(Convert.ToInt32(ddlTrangThai.SelectedValue));
                    if (checkVN(action))
                    {
                        save1 = businessNews.Insert(entityNews);
                        if (save1)
                        {
                            Alert.Show("Thêm bài viết mới thành công !!!");
                            fuHinhAnh.SaveAs(Server.MapPath("~/uploads/image-news/" + entityNews.HinhAnh));
                        }
                        else { Alert.Show("Thêm bài viết mới không thành công !!!"); }
                    }
                }
                if (ddlCategory.SelectedValue != "0" && ddlCategory.SelectedValue != "0")
                {
                    entityNews.NguonTin = txtAuthors.Text;
                    entityNews.TomTat = txtSummary.Text;
                    entityNews.TieuDe = txtTitle.Text;
                    entityNews.NoiDung = fckContent.Value;
                    entityNews.NgonNgu = "en";
                    entityNews.ChuyenMuc = Convert.ToInt32(ddlCategory.SelectedValue);
                    entityNews.TrangThai = Convert.ToBoolean(Convert.ToInt32(ddlStatus.SelectedValue));
                    if (checkEN(action))
                    {
                        save1 = businessNews.Insert(entityNews);
                    }
                    entityNews.NguonTin = txtTacGia.Text;
                    entityNews.TomTat = txtTomTat.Text;
                    entityNews.TieuDe = txtTieuDe.Text;
                    entityNews.NoiDung = fckNoiDungVn.Value;
                    entityNews.NgonNgu = "vi";
                    entityNews.ChuyenMuc = Convert.ToInt32(ddlChuyenMuc.SelectedValue);
                    entityNews.TrangThai = Convert.ToBoolean(Convert.ToInt32(ddlTrangThai.SelectedValue));
                    if (checkEN(action))
                    {
                        save2 = businessNews.Insert(entityNews);
                    }
                    if (save1 && save2)
                    {
                        Alert.Show("Thêm bài viết mới thành công !!!");
                        fuHinhAnh.SaveAs(Server.MapPath("~/uploads/image-news/" + entityNews.HinhAnh));
                    }
                    else { Alert.Show("Thêm bài viết mới không thành công !!!"); }
                }
            }
            else
            {
                entityNews.IdTinTuc = Convert.ToInt32(Request.QueryString["Id"]);
                if (ddlStatus.SelectedValue != "0" && ddlChuyenMuc.SelectedValue == "0")
                {
                    entityNews.NguonTin = txtAuthors.Text;
                    entityNews.TomTat = txtSummary.Text;
                    entityNews.TieuDe = txtTitle.Text;
                    entityNews.NoiDung = fckContent.Value;
                    entityNews.NgonNgu = "en";
                    entityNews.NgayDang = Convert.ToDateTime(dpkNgayVietVn.Text);
                    entityNews.ChuyenMuc = Convert.ToInt32(ddlCategory.SelectedValue);
                    entityNews.TrangThai = Convert.ToBoolean(Convert.ToInt32(ddlStatus.SelectedValue));
                    if (fuHinhAnh.FileName != "")
                    {
                        File.Delete(Server.MapPath("~/uploads/image-news/" + lbTenHinh.Text));
                        entityNews.HinhAnh = stringRandom + fuHinhAnh.FileName;
                        fuHinhAnh.SaveAs(Server.MapPath("~/uploads/image-news/" + entityNews.HinhAnh));
                    }
                    else
                    { entityNews.HinhAnh = lbTenHinh.Text; }
                    save1 = businessNews.Update(entityNews);
                    if (save1)
                    { Alert.Show("Cập nhật thông tin bài viết thành công !!!"); }
                    else
                    { Alert.Show("Cập nhật thông tin bài viết không thành công !!!"); }
                }
                if (ddlCategory.SelectedValue == "0" && ddlChuyenMuc.SelectedValue != "0")
                {
                    entityNews.NguonTin = txtTacGia.Text;
                    entityNews.TomTat = txtTomTat.Text;
                    entityNews.TieuDe = txtTieuDe.Text;
                    entityNews.NoiDung = fckNoiDungVn.Value;
                    entityNews.NgonNgu = "vi";
                    entityNews.NgayDang = Convert.ToDateTime(dpkNgayVietVn.Text);
                    entityNews.ChuyenMuc = Convert.ToInt32(ddlChuyenMuc.SelectedValue);
                    entityNews.TrangThai = Convert.ToBoolean(Convert.ToInt32(ddlTrangThai.SelectedValue));
                    if (fuHinhAnh.FileName != "")
                    {
                        File.Delete(Server.MapPath("~/uploads/image-news/" + lbTenHinh.Text));
                        entityNews.HinhAnh = stringRandom + fuHinhAnh.FileName;
                        fuHinhAnh.SaveAs(Server.MapPath("~/uploads/image-news/" + entityNews.HinhAnh));
                    }
                    else
                    { entityNews.HinhAnh = lbTenHinh.Text; }
                    save1 = businessNews.Update(entityNews);
                    if (save1)
                    { Alert.Show("Cập nhật thông tin bài viết thành công !!!"); }
                    else
                    { Alert.Show("Cập nhật thông tin bài viết không thành công !!!"); }
                }
                if (ddlCategory.SelectedValue != "0" && ddlChuyenMuc.SelectedValue != "0")
                {
                    entityNews.NgayDang = Convert.ToDateTime(dpkNgayVietVn.Text);
                    if (fuHinhAnh.FileName != "")
                    {
                        File.Delete(Server.MapPath("~/uploads/image-news/" + lbTenHinh.Text));
                        entityNews.HinhAnh = stringRandom + fuHinhAnh.FileName;
                        fuHinhAnh.SaveAs(Server.MapPath("~/uploads/image-news/" + entityNews.HinhAnh));
                    }
                    else
                    { entityNews.HinhAnh = lbTenHinh.Text; }
                    entityNews.NguonTin = txtAuthors.Text;
                    entityNews.TomTat = txtSummary.Text;
                    entityNews.TieuDe = txtTitle.Text;
                    entityNews.NoiDung = fckContent.Value;
                    entityNews.NgonNgu = "en";
                    entityNews.ChuyenMuc = Convert.ToInt32(ddlCategory.SelectedValue);
                    entityNews.TrangThai = Convert.ToBoolean(Convert.ToInt32(ddlStatus.SelectedValue));

                    save1 = businessNews.Update(entityNews);

                    entityNews.NguonTin = txtTacGia.Text;
                    entityNews.TomTat = txtTomTat.Text;
                    entityNews.TieuDe = txtTieuDe.Text;
                    entityNews.NoiDung = fckNoiDungVn.Value;
                    entityNews.NgonNgu = "vi";
                    entityNews.ChuyenMuc = Convert.ToInt32(ddlChuyenMuc.SelectedValue);
                    entityNews.TrangThai = Convert.ToBoolean(Convert.ToInt32(ddlTrangThai.SelectedValue));

                    save2 = businessNews.Update(entityNews);

                    if (save1 && save2)
                    { Alert.Show("Cập nhật thông tin bài viết thành công !!!"); }
                    else
                    { Alert.Show("Cập nhật thông tin bài viết không thành công !!!"); }
                }
            }


        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
}
